package github.kawaiior.yuanchuxiuzhen.core.init;

import github.kawaiior.yuanchuxiuzhen.Yuanchuxiuzhen;
import github.kawaiior.yuanchuxiuzhen.common.block.fire.StrangeFire;
import github.kawaiior.yuanchuxiuzhen.common.block.hell.HellRock;
import github.kawaiior.yuanchuxiuzhen.common.block.hell.HellVineBlock;
import github.kawaiior.yuanchuxiuzhen.common.block.hell.MournSoil;
import github.kawaiior.yuanchuxiuzhen.common.block.market.GongFaCreateBlock;
import github.kawaiior.yuanchuxiuzhen.common.block.market.ManaStoneConverterBlock;
import github.kawaiior.yuanchuxiuzhen.common.block.market.MaterialConverterBlock;
import github.kawaiior.yuanchuxiuzhen.common.block.misc.PelletFurnaceBlock;
import github.kawaiior.yuanchuxiuzhen.common.block.misc.WeaponFurnaceBlock;
import github.kawaiior.yuanchuxiuzhen.common.block.ore.ManaStoneOre;
import net.minecraft.block.*;
import net.minecraftforge.fml.RegistryObject;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;

public class BlockInit {
    public static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, Yuanchuxiuzhen.MODID);

//    public static final RegistryObject<ExampleBlock> EXAMPLE_BLOCK = BLOCKS.register("example_block",ExampleBlock::new);
//
//    public static final  RegistryObject<ExampleDirectionBlock> EXAMPLE_DIRECTION_BLOCK = BLOCKS.register("example_direction_block",ExampleDirectionBlock::new);
//
//    public static final RegistryObject<CustomBlock> CUSTOM_BLOCK = BLOCKS.register("custom_block",CustomBlock::new);

//    public static final RegistryObject<Block> EXAMPLE_GUI_BLOCK =
//            BLOCKS.register("example_gui_block", ExampleGuiBlock::new);

    // tile
//    public static final RegistryObject<Block> TRADE_CONTAINER_BLOCK_1 =
//            BLOCKS.register("trade_container_block_1", TradeContainerBlock1::new);
//    public static final RegistryObject<Block> MATERIAL_CONVERTER_BLOCK =
//            BLOCKS.register("material_converter_block", MaterialConverterBlock::new);
    public static final RegistryObject<Block> MATERIAL_CONVERTER_BLOCK =
            BLOCKS.register("material_converter_block", MaterialConverterBlock::new);
    public static final RegistryObject<Block> GONG_FA_CREATE_BLOCK =
            BLOCKS.register("gong_fa_create_block", GongFaCreateBlock::new);
    public static final RegistryObject<Block> MANA_STONE_CONVERTER_BLOCK =
            BLOCKS.register("mana_stone_converter_block", ManaStoneConverterBlock::new);
    public static final RegistryObject<Block> PELLET_FURNACE_BLOCK =
            BLOCKS.register("pellet_furnace_block", PelletFurnaceBlock::new);

    public static final RegistryObject<Block> WEAPON_FURNACE_BLOCK =
            BLOCKS.register("weapon_furnace_block", WeaponFurnaceBlock::new);

    // 矿物
    public static final RegistryObject<ManaStoneOre> MANA_STONE_ORE_BLOCK_1 =
            BLOCKS.register("mana_stone_ore_block_1", ()-> new ManaStoneOre(1, 1.5F));
    public static final RegistryObject<ManaStoneOre> MANA_STONE_ORE_BLOCK_2 =
            BLOCKS.register("mana_stone_ore_block_2", ()-> new ManaStoneOre(2, 2F));
    public static final RegistryObject<ManaStoneOre> MANA_STONE_ORE_BLOCK_3 =
            BLOCKS.register("mana_stone_ore_block_3", ()-> new ManaStoneOre(3, 2.5F));
    public static final RegistryObject<ManaStoneOre> MANA_STONE_ORE_BLOCK_4 =
            BLOCKS.register("mana_stone_ore_block_4", ()-> new ManaStoneOre(4, 3F));
    public static final RegistryObject<ManaStoneOre> MANA_STONE_ORE_BLOCK_5 =
            BLOCKS.register("mana_stone_ore_block_5", ()-> new ManaStoneOre(5, 3.5F));
    public static final RegistryObject<ManaStoneOre> MANA_STONE_ORE_BLOCK_6 =
            BLOCKS.register("mana_stone_ore_block_6", ()-> new ManaStoneOre(6, 4F));
    public static final RegistryObject<ManaStoneOre> MANA_STONE_ORE_BLOCK_7 =
            BLOCKS.register("mana_stone_ore_block_7", ()-> new ManaStoneOre(7, 4.5F));
    public static final RegistryObject<ManaStoneOre> MANA_STONE_ORE_BLOCK_8 =
            BLOCKS.register("mana_stone_ore_block_8", ()-> new ManaStoneOre(8, 5F));
    public static final RegistryObject<ManaStoneOre> MANA_STONE_ORE_BLOCK_9 =
            BLOCKS.register("mana_stone_ore_block_9", ()-> new ManaStoneOre(9, 6F));

    // 普通方块
    public static final RegistryObject<HellRock> HELL_ROCK_BLOCK =
            BLOCKS.register("hell_rock", HellRock::new);
    public static final RegistryObject<MournSoil> MOURN_SOIL_BLOCK =
            BLOCKS.register("mourn_soil", MournSoil::new);
    public static final RegistryObject<HellVineBlock> HELL_VINE_BLOCK =
            BLOCKS.register("hell_vine_block", HellVineBlock::new);

    // 异火
    public static final RegistryObject<StrangeFire> YANG_FIRE_1 =
            BLOCKS.register("yang_fire_1", ()->new StrangeFire(5F, 1, true));
    public static final RegistryObject<StrangeFire> YANG_FIRE_2 =
            BLOCKS.register("yang_fire_2", ()->new StrangeFire(10F, 2, true));
    public static final RegistryObject<StrangeFire> YANG_FIRE_3 =
            BLOCKS.register("yang_fire_3", ()->new StrangeFire(15F, 3, true));
    public static final RegistryObject<StrangeFire> YANG_FIRE_4 =
            BLOCKS.register("yang_fire_4", ()->new StrangeFire(20F, 4, true));
    public static final RegistryObject<StrangeFire> YANG_FIRE_5 =
            BLOCKS.register("yang_fire_5", ()->new StrangeFire(25F, 5, true));
    public static final RegistryObject<StrangeFire> YANG_FIRE_6 =
            BLOCKS.register("yang_fire_6", ()->new StrangeFire(30F, 6, true));
    public static final RegistryObject<StrangeFire> YANG_FIRE_7 =
            BLOCKS.register("yang_fire_7", ()->new StrangeFire(35F, 7, true));
    public static final RegistryObject<StrangeFire> YANG_FIRE_8 =
            BLOCKS.register("yang_fire_8", ()->new StrangeFire(40F, 8, true));
    public static final RegistryObject<StrangeFire> YANG_FIRE_9 =
            BLOCKS.register("yang_fire_9", ()->new StrangeFire(50F, 9, true));

    public static final RegistryObject<StrangeFire> YIN_FIRE_1 =
            BLOCKS.register("yin_fire_1", ()->new StrangeFire(5F, 1));
    public static final RegistryObject<StrangeFire> YIN_FIRE_2 =
            BLOCKS.register("yin_fire_2", ()->new StrangeFire(10F, 2));
    public static final RegistryObject<StrangeFire> YIN_FIRE_3 =
            BLOCKS.register("yin_fire_3", ()->new StrangeFire(15F, 3));
    public static final RegistryObject<StrangeFire> YIN_FIRE_4 =
            BLOCKS.register("yin_fire_4", ()->new StrangeFire(20F, 4));
    public static final RegistryObject<StrangeFire> YIN_FIRE_5 =
            BLOCKS.register("yin_fire_5", ()->new StrangeFire(25F, 5));
    public static final RegistryObject<StrangeFire> YIN_FIRE_6 =
            BLOCKS.register("yin_fire_6", ()->new StrangeFire(30F, 6));
    public static final RegistryObject<StrangeFire> YIN_FIRE_7 =
            BLOCKS.register("yin_fire_7", ()->new StrangeFire(35F, 7));
    public static final RegistryObject<StrangeFire> YIN_FIRE_8 =
            BLOCKS.register("yin_fire_8", ()->new StrangeFire(40F, 8));
    public static final RegistryObject<StrangeFire> YIN_FIRE_9 =
            BLOCKS.register("yin_fire_9", ()->new StrangeFire(50F, 9));
}
